Portability - A No Longer Solved Problem
نویسندگان
چکیده
Of Man's First Disobedience, .. . or Not long ago, the problem of software portability seemed on the way to solution. Now, the need and demand for portability is enormously greater, but solution seems much further away. Reasons include stricter requirements for portability, different expectations by and of the people doing the work, and a far wider range of environments in which software must function. This paper describes how this came about and modern approaches to the problem. 1. The Innocents Abroad Program portability is an old goal. There have been many notable successes, but there has been a major shift in expectations and satisfaction in the past decade. The flrst efforts were in the areas of mathematical and systems software, and a great deal of l. All the section headings refer to actual works; no prize is offered to those who identify them. -PHS @ Computing Systems, Vol. 3 'No. 2 ' Spring 1990 359 research led to good practical solutions involving clever software and concentrated activity. Thus, we find ourselves in the paradoxical situation of having better techniques and knowledge but in more trouble and with more grumpy customers. We contend that almost any program can be made portable, usually at acceptable production cost and execution effectiveness. There are many impressive examples. Even embedded systems with exotic peripherals and real-time constraints, have been successfully ported. However, the scale and scope of the problem have increased dramatically, and techniques need to be extended and upgraded to meet current demands. In the old days it was rarely possible to move a system without change but it was important to avoid reinventing the whole thing. The idea that something was either portable or not soon broadened to a continuous measure of how portable an object was, depending on how much easier it was to move than to recreate from scratch. It is technically possible to create a completely portable version of almost any program since it is possible to reduce it to a Turing machine simulation, but the cost of such an approach is far too high. With careful study, computer scientists found some significant areas in which high degrees of portability were achieved at seemingly negligible cost. As a result of this achievement in limited areas, people are starting to demand absolute portability again, and in a far richer world. As the cost of hardware drops, a growing fraction of 'ooperators" are people who make use of computers, but are not knowledgeable about them, have no desire to delve into their mysteries, and do not want to spend time or thought in installing software. In the past, moving a program was viewed as an extraordinary event. It is now the norm for any valuable code. Writing a program over from scratch is possible but also expensive, and the prospect is truly boring if it has to be done more than once. Many programs evolve radically, and the sequence of'changes can usefully be described as a port from one machine to itself. If there are already versions for a number of environments, the functional changes then need to appear in all the environments, so there may very well be a sequence of parallel ports. This task can be a nightmare if not controlled carefully, supported by a 360 Stuart Feldman and W. Morven Gentleman computer, and planned in advance. Conversely, significant economies are likely if one assumes that many ports will be done, and that some will be done in parallel. Forethought does indeed sometimes pay. Ofcourse, various panaceas have been offered. Language standardization has been presented as a necessary and sufficient solution to the software portability problem. (A major selling point of Ada was that programs would almost automatically be highly portable.) Not so. It is often possible to cover language inconsistencies, once they are known, by preprocessing and postprocessing tricks. The deeper problems are likely to lie in the ineffable interface or the unknowable confrguration description. Almost all successful portability efforts have been based on defining an ideal system to which each ported version is the best possible approximation given certain constraints. There are two basic approaches, the "Least Common Multiple," in which the model encompasses all the features that one anticipates encountering, and the individual ports are subsets of the ideal, and the "Greatest Common Divisor" approach, in which the ideal includes the minimal functionality, and the implementations include some adornments. The GCD approach is likely to be easier to understand, since the abstraction is simple, but the results may not be very satisfactory. More imagination and discipline are required to produce a sensible LCM model, but the approach is likely to provide better performance over a wide variety of targets since the model includes all the relevant aspects. It can be expensive to do an LCM port, but if appropriate tools are available, it can be straightforward to simulate complex ideas on a restricted machine. (For example, it is easy to implement an interpreter for the standard Pascal intermediate language PCODE and it is easy to translate Pascal into PCODE, but it can be very hard to optimize clever address expressions and to handle other such horrors. A more general intermediate is more laborious to implement, but that work can be mechanized, and it is then easier to do the hard job of generating good code on a wider variety of machines.) Controversy: Portability A No Longer Solved Problem 36I 2. For Whom the Bell Tolls The basic reasons for wanting portable systems remain the same: portability increases the range of environments in which a piece of work can be applied with reasonable cost. The intellectual or frnancial costs of developing a serious piece of software can be amortized over a broader base, so a wider variety of jobs is worth doing and the rewards for the more obvious items increase. The maintenance costs can frequently be spread also, since many bugs and functional enhancements apply to all versions rather than being target-specifrc. The time to deliver to a market can be reduced dramatically by applying portability techniques: it is often the case that writing a program so that it can be ported has little effect on the time it takes to write the first version, but later versions can appear almost instantly. Some jobs simply would not be attempted if they could not be ported cheaply, since they may require some very scarce resource (typically, human expertise) to do at all; if an opportunity exists to do something once, it may be unrealistic to expect to do the job twice. The effective lifetime of a portable piece of software increases, since it is possible to transport it temporally to more modern pieces of equipment, not just to spatially separated ones. The importance of portability is quite generally recognized. A recent international committee with the romantic name ISO/IEC JTC-liTSG-l has as its purpose making a recommendation to its parent committee what new international standards are needed, and what existing standards may need adjustment, in order to improve the portability of application programs. Portability has advantages to a wide variety of people and organizations. In addition to the general considerations above, there are special benefrts to people in particular roles: . Integrated software system vendors and even hardware vendors are particularþ interested in the ability to change substrate (computing environment) while preserving the surface level products. They can keep customers who are interested in a particular operating system or in a particular turnkey application over a long period of time and a wide spectrum of technologies. 362 Stuart Feldman and !üy'. Morven Gentleman . Independent (third-party) software vendors are especially interested in the ability to increase their market size by offering their product on a variety of platforms. They can do this with low redevelopment cost (whether measured in terms of money, time, or boredom) and without retraining their support staff. . System integrators can offer their services in a wide range of platforms and for a wider range of components to integrate. They also have a business opportunity of evaluating, porting, and adapting software. . Developers involved in geographically or corporately dispersed activity can share ideas and results over a wide range. This permits achieving critical mass even if individual organizations are small and resources are scarce. . Educators care about portability because it increases the life-time of the skills they are imparting, permits students to get experience on a variety of equipment, and to have some commonality (e.g., programming language and editor)
منابع مشابه
A model for distribution centers location-routing problem on a multimodal transportation network with a meta-heuristic solving approach
Nowadays, organizations have to compete with different competitors in regional, national and international levels, so they have to improve their competition capabilities to survive against competitors. Undertaking activities on a global scale requires a proper distribution system which could take advantages of different transportation modes. Accordingly, the present paper addresses a location-r...
متن کاملOutcomes of an Activity Progression Protocol for Pneumonia and COPD Partners
Problem: Longer than expected lengths of stay for community acquired pneumonia (CAP) and COPD patients prompted an extensive chart review to examine possible contributing factors. Documented progression of patient activity beyond bedrest was not occurring in the majority of cases. Further analysis revealed the following barriers: patient desaturation with exertion, fatigue during ambulation, di...
متن کاملComparing Mixed-Integer and Constraint Programming for the No-Wait Flow Shop Problem with Due Date Constraints
The impetus for this research was examining a flow shop problem in which tasks were expected to be successively carried out with no time interval (i.e., no wait time) between them. For this reason, they should be completed by specific dates or deadlines. In this regard, the efficiency of the models was evaluated based on makespan. To solve the NP-Hard problem, we developed two mathematical mode...
متن کاملSolved Forms for Path Ordering Constraints
A usual technique in symbolic constraint solving is to apply transformation rules until a solved form is reached for which the problem becomes trivial. Ordering constraints are well-known to be reducible to a disjunction of solved forms, but unfortunately no polynomial algorithm deciding the satissability of these solved forms is known. Surprisingly, it turns out that this is no longer the case...
متن کاملDoes It Fit ? Drawing Lessons from Differing Labor Practices
We are attentive to labor practices in foreign lands but as the quotations above indicate, we are unsure about the lessons to be drawn from these practices. Will something that works `over there' work here, or will it fail to `fit' our ways of doing things? Which practices will adapt or evolve into something different in a different setting? Which may catalyse forces that will change our entire...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Computing Systems
دوره 3 شماره
صفحات -
تاریخ انتشار 1990